home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 35 / Amiga Format AFCD35 (Issue 119, Jan 1999).iso / -in_the_mag- / reader_requests / fredobbutils / bbsrc / utilityboot6.0.s < prev   
Text File  |  1998-11-06  |  4KB  |  225 lines

  1. *** Code de Bootblock: UTILITY BOOT 6.0 (BY MARC OF SLIPSTREAM)
  2. * an old (OS 1.3 only) utility boot...
  3. * just to show you what you SHOULD NOT do!!!
  4.  
  5. Start:
  6.     move.l    4.w,a6
  7. LB_000C
  8.     MOVEM.L    D0-D7/A1-A6,-(A7)
  9. ;    MOVE.W    #$0009,$001C(A1)
  10. ;    CLR.L    $0024(A1)
  11. ;    JSR    -$01C8(A6)        ;DoIo() - motor off
  12.     CMPI.W    #$0008,$003E(A6)
  13.     BNE.B    LB_002C
  14.     TST.L    $004E(A6)
  15.     BEQ.B    LB_0036
  16. LB_002C    LEA    LB_033E(PC),A1
  17.     MOVE.L    #' ON ',(A1)
  18. LB_0036    CLR.L    D0
  19.     LEA    dskname(PC),A1
  20.     JSR    -$01F2(A6)    ;OpenResource()
  21.     MOVE.L    D0,A0
  22.     LEA    $0034(A0),A0
  23.     TST.L    (A0)+
  24.     BEQ.B    LB_0052
  25.     TST.L    (A0)+
  26.     BEQ.B    LB_0052
  27.     TST.L    (A0)+
  28.     BNE.B    LB_005C
  29. LB_0052    LEA    LB_032E(PC),A1
  30.     MOVE.L    #'ON  ',(A1)
  31. LB_005C
  32.     lea    gfxname(pc),a1
  33.     jsr    -408(a6)
  34.     move.l    d0,a6
  35.     MOVE.L    50(A6),-(A7)
  36.     MOVE.L    A6,-(A7)
  37.     MOVE.W    #$00A0,$00DFF096
  38.     LEA    CopList(PC),A1
  39.     MOVE.L    A1,50(A6)
  40.     LEA    $00070000,A1
  41. LB_007C    CLR.L    (A1)+
  42.     CMPA.L    #$0007F000,D1
  43.     BNE.B    LB_007C
  44.     MOVE.L    (A7),A6
  45.     LEA    $00041000,A0
  46.     MOVEQ    #$01,D0        ;Depth
  47.     MOVE    #768,D1        ;Width
  48.     MOVE    #256,D2        ;Height
  49.     JSR    -$0186(A6)    ;InitBitMap()
  50.     MOVE.L    #$00070000,$00041008
  51.     LEA    $00041100,A1
  52.     JSR    -$00C6(A6)    ;InitRastPort()
  53.     MOVE.L    #$00041000,$00041104
  54. ;    LEA    $00041100,A1
  55. ;    MOVEQ    #$01,D0
  56. ;    JSR    -$0156(A6)    ;SetAPen
  57.     LEA    LB_0302(PC),A5
  58. LB_00CE    LEA    $00041100,A1
  59.     CLR.L    D4
  60.     MOVEQ    #50,D3
  61.     MOVE.B    (A5)+,D4
  62.     BEQ.B    LB_0106
  63.     LEA    $00041100,A1
  64.     MOVE    D3,D0
  65.     MOVE    D4,D1
  66.     JSR    -$00F0(A6)    ;Move()
  67.     LEA    $00041100,A1
  68.     MOVE.L    A5,A0
  69.     MOVEQ    #$1F,D0
  70.     JSR    -$003C(A6)    ;Text()
  71.     LEA    $001F(A5),A5
  72.     BRA.B    LB_00CE
  73. LB_0106    MOVE.W    #$8380,$00DFF096
  74.     CLR.B    $00BFEC01
  75.     MOVE.L    4.W,A6
  76.     MOVE.L    #$0004A000,D4
  77.     BSR.B    LB_0146
  78.     BEQ.B    LB_0150
  79.     TST.L    $002A(A6)
  80.     BNE.B    LB_0134
  81.     TST.L    $002E(A6)
  82.     BNE.B    LB_0134
  83.     TST.L    $022A(A6)
  84.     BEQ.B    LB_015A
  85. LB_0134    MOVE.W    D4,$00DFF180
  86.     DBF    D4,LB_0134
  87. LB_013E    CLR.L    $0026(A6)
  88.     BRA.W    LB_026A
  89. LB_0146    BTST    #$02,$00DFF016
  90.     RTS    
  91. LB_0150    LEA    LB_02FC(PC),A0
  92.     MOVE.B    $0000000C,(A0)
  93. LB_015A    SUBQ.L    #1,D4
  94.     BEQ.B    LB_01B4
  95.     BTST    #$06,$00BFE001
  96.     BEQ.B    LB_01B4
  97.     BSR.B    LB_0146
  98.     BNE.B    LB_017C
  99.     SUBQ.L    #1,D3
  100.     BNE.B    LB_017C
  101.     MOVE.W    #$1666,D3
  102.     BCHG    #$01,$00BFE001
  103. LB_017C    MOVE.B    $00BFEC01,D0
  104.     NOT.B    D0
  105.     CMP.W    #$00A0,D0
  106.     BEQ.W    LB_0252
  107.     CMP.B    #$A2,D0
  108.     BEQ.W    LB_0222
  109.     CMP.B    #$A4,D0
  110.     BEQ.W    LB_026A
  111.     CMP.B    #$A6,D0
  112.     BEQ.B    LB_013E
  113.     CMP.B    #$A8,D0
  114.     BEQ.B    LB_013E
  115.     CMP.B    #$AA,D0
  116.     BEQ.B    LB_01D8
  117.     BRA.B    LB_015A
  118. LB_01B4    BSR.B    LB_01C8
  119. *** boot system
  120.     LEA    dosname(PC),A1
  121.     JSR    -96(A6)
  122.     MOVE.L    D0,A0
  123.     MOVE.L    22(A0),A0
  124.     MOVEQ    #0,D0
  125.     RTS    
  126. LB_01C8    MOVE.L    (A7)+,A0
  127.     MOVE.L    (A7)+,A6
  128.     MOVE.L    (A7)+,50(A6)        ;old coplist
  129.     MOVEM.L    (A7)+,D0-D7/A1-A6
  130.     MOVE.L    A0,-(A7)
  131.     RTS    
  132. LB_01D8    BSR.B    LB_01C8
  133.     LEA    LB_032E(PC),A0
  134.     MOVE.L    #'OFF ',(A0)
  135.     LEA    LB_033E(PC),A0
  136.     MOVE.L    #' OFF',(A0)
  137.     LEA    LB_02FC(PC),A0
  138.     CLR.W    (A0)
  139. *** Install bootblock
  140.     MOVE.W    #$0003,$001C(A1)
  141.     BSR.B    LB_0208
  142.     MOVE.W    #$0004,$001C(A1)
  143.     BSR.B    LB_0208
  144.     BRA.W    LB_000C
  145. LB_0208    LEA    Start(PC),A0
  146.     MOVE.L    A0,$0028(A1)
  147.     MOVE.L    #$00000400,$0024(A1)
  148.     CLR.L    $002C(A1)
  149.     JMP    -$01C8(A6)
  150. LB_0222    MOVE.L    A6,A0
  151.     LEA    $00FC0280,A5
  152. LB_022A    CMPI.W    #$21FC,-(A5)
  153.     BNE.B    LB_022A
  154.     SUBA.L    A4,A4
  155.     LEA    $00000676,A6
  156.     LEA    $00080000,A3
  157.     LEA    $00DFF096,A1
  158.     MOVE.L    #$7FFF7FFF,D0
  159.     MOVE.L    D0,(A1)+
  160.     MOVE.L    D0,(A1)+
  161.     JMP    -$001E(A0)
  162. LB_0252    LEA    $0007F000,A1
  163.     LEA    LB_0274(PC),A0
  164.     MOVE.L    A1,$002E(A6)
  165.     MOVEQ    #$1F,D0
  166. LB_0262    MOVE.L    (A0)+,(A1)+
  167.     DBF    D0,LB_0262
  168.     BSR.B    LB_0286
  169. LB_026A    LEA    $00FC00D0,A5
  170.     JMP    -$001E(A6)
  171. LB_0274    CLR.L    $002E(A6)
  172.     LEA    LB_029A(PC),A0
  173.     MOVE.L    -$0064(A6),$0040(A0)
  174.     MOVE.L    A0,-$0064(A6)
  175. LB_0286    LEA    $0022(A6),A0
  176.     CLR.W    D0
  177.     MOVEQ    #$17,D1
  178. LB_028E    ADD.W    (A0)+,D0
  179.     DBF    D1,LB_028E
  180.     NOT.W    D0
  181.     MOVE.W    D0,(A0)
  182.     RTS    
  183. LB_029A    CMPI.W    #$6469,$001A(A1)
  184.     BNE.B    LB_02D8
  185.     MOVEM.L    D0-A0/A2-A5,-(A7)
  186.     LEA    LB_02E2(PC),A0
  187.     MOVE.L    A0,D0
  188.     MOVE.W    #$00FF,D2
  189. LB_02B0    MOVE.W    (A1)+,D1
  190.     CMP.W    #$0005,D1
  191.     BNE.B    LB_02BA
  192.     ADDQ.W    #1,D1
  193. LB_02BA    MOVE.W    D1,(A0)+
  194.     DBF    D2,LB_02B0
  195.     MOVE.L    -$01EA(A1),A2
  196.     SUBA.L    A1,A2
  197.     ADDA.L    A0,A2
  198.     MOVE.L    A2,-$01EA(A0)
  199.     MOVE.L    D0,A1
  200.     MOVEM.L    (A7)+,D0-A0/A2-A5
  201.     MOVE.L    CopList(PC),-$0064(A6)
  202. LB_02D8
  203.     dc.w    $4ef9
  204. CopList:
  205.     DC.w    $0100,$1200,$0092,$0020
  206. LB_02E2    DC.w    $0094,$00D8,$008E,$3000
  207.     DC.w    $0090,$30FF,$00E0,$0007
  208.     DC.w    $00E2,$0870,$0182,$0FFF
  209.     DC.w    $0180
  210. LB_02FC    dc.w    $0000,$FFFF,$FFFE
  211. dskname    DC.B    'disk.resource',0
  212. gfxname    dc.b    'graphics.library',0
  213. dosname    DC.B    'dos.library',0
  214.     even
  215. LB_0302
  216.     DC.B    ' VIRUS KILLER/UTILITY BOOT  V6.0-DRIVES ARE '
  217. LB_032E
  218.     DC.B    'OFF    MEMORY IS'
  219. LB_033E
  220.     DC.B    ' OFF?F1 DRIVES OFF     F2 MEMORY OFFIF3 DRIVES O'
  221.     DC.B    'N      F4 MEMORY ON SF5 HARD RESET   F6 INSTALL '
  222.     DC.B    'BOOTfL.MOUSE EXIT     R.MOUSE FILTERr  CODED BY '
  223.     DC.B    'MARC OF SLIPSTREAM  ',0
  224.     DC.B    0
  225.